//
// Generated by NVIDIA NVVM Compiler
//
// Compiler Build ID: CL-31968024
// Cuda compilation tools, release 12.0, V12.0.76
// Based on NVVM 7.0.1
//

.version 8.0
.target sm_52
.address_size 64

	// .globl	__closesthit__dummy
.const .align 16 .b8 params[384];

.visible .entry __closesthit__dummy()
{



	ret;

}
	// .globl	__anyhit__oxMain
.visible .entry __anyhit__oxMain()
{
	.reg .pred 	%p<3>;
	.reg .b16 	%rs<9>;
	.reg .f32 	%f<21>;
	.reg .b32 	%r<26>;
	.reg .b64 	%rd<2>;


	// begin inline asm
	call (%r1), _optix_read_primitive_idx, ();
	// end inline asm
	// begin inline asm
	call (%f2, %f3), _optix_get_triangle_barycentrics, ();
	// end inline asm
	mov.u32 	%r2, 0;
	// begin inline asm
	call (%rd1), _optix_call_direct_callable,(%r2);
	// end inline asm
	{ // callseq 0, 0
	.reg .b32 temp_param_reg;
	.param .b32 param0;
	st.param.b32 	[param0+0], %r1;
	.param .align 8 .b8 param1[8];
	st.param.v2.f32 	[param1+0], {%f2, %f3};
	.param .align 8 .b8 retval0[32];
	prototype_0 : .callprototype (.param .align 8 .b8 _[32]) _ (.param .b32 _, .param .align 8 .b8 _[8]);
	call (retval0), 
	%rd1, 
	(
	param0, 
	param1
	)
	, prototype_0;
	ld.param.v2.f32 	{%f4, %f5}, [retval0+0];
	ld.param.f32 	%f6, [retval0+8];
	ld.param.v4.b8 	{%rs1, %rs2, %rs3, %rs4}, [retval0+12];
	ld.param.v2.f32 	{%f7, %f8}, [retval0+16];
	ld.param.f32 	%f1, [retval0+24];
	ld.param.v4.b8 	{%rs5, %rs6, %rs7, %rs8}, [retval0+28];
	} // callseq 0
	setp.gtu.f32 	%p1, %f1, 0f00000000;
	@%p1 bra 	$L__BB1_4;
	bra.uni 	$L__BB1_1;

$L__BB1_4:
	// begin inline asm
	call _optix_set_payload, (%r2, %r2);
	// end inline asm
	mov.u32 	%r22, 1;
	// begin inline asm
	call _optix_set_payload, (%r22, %r2);
	// end inline asm
	mov.u32 	%r24, 2;
	// begin inline asm
	call _optix_set_payload, (%r24, %r2);
	// end inline asm
	// begin inline asm
	call _optix_terminate_ray, ();
	// end inline asm
	bra.uni 	$L__BB1_5;

$L__BB1_1:
	setp.geu.f32 	%p2, %f1, 0f00000000;
	@%p2 bra 	$L__BB1_3;

	mov.u32 	%r9, 0;
	// begin inline asm
	call (%r3), _optix_get_payload, (%r9);
	// end inline asm
	mov.b32 	%f9, %r3;
	mov.u32 	%r11, 1;
	// begin inline asm
	call (%r5), _optix_get_payload, (%r11);
	// end inline asm
	mov.b32 	%f10, %r5;
	mov.u32 	%r13, 2;
	// begin inline asm
	call (%r7), _optix_get_payload, (%r13);
	// end inline asm
	mov.b32 	%f11, %r7;
	cvt.rzi.s32.f32 	%r15, %f1;
	not.b32 	%r16, %r15;
	and.b32  	%r17, %r16, 255;
	bfe.u32 	%r18, %r16, 8, 8;
	bfe.u32 	%r19, %r16, 16, 8;
	cvt.rn.f32.s32 	%f12, %r17;
	cvt.rn.f32.s32 	%f13, %r18;
	cvt.rn.f32.s32 	%f14, %r19;
	mul.f32 	%f15, %f12, 0f3B808081;
	mul.f32 	%f16, %f13, 0f3B808081;
	mul.f32 	%f17, %f14, 0f3B808081;
	mul.f32 	%f18, %f15, %f9;
	mul.f32 	%f19, %f16, %f10;
	mul.f32 	%f20, %f17, %f11;
	mov.b32 	%r10, %f18;
	// begin inline asm
	call _optix_set_payload, (%r9, %r10);
	// end inline asm
	mov.b32 	%r12, %f19;
	// begin inline asm
	call _optix_set_payload, (%r11, %r12);
	// end inline asm
	mov.b32 	%r14, %f20;
	// begin inline asm
	call _optix_set_payload, (%r13, %r14);
	// end inline asm

$L__BB1_3:
	// begin inline asm
	call _optix_ignore_intersection, ();
	// end inline asm

$L__BB1_5:
	ret;

}

